//
//  main.m
//  06-NSDateSurvey
//
//  Created by 曹曹 on 16/7/11.
//  Copyright © 2016年 曹曹. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
#pragma mark - 字符串转换为NSDate对象
    // 需要转换的字符串
    NSString *dateStr= @"2016年04月01日 01点20分18秒";
    // 想要的日期格式
    NSDateFormatter *format=[[NSDateFormatter alloc] init];
    [format setDateFormat:@"yyyy年MM月dd日 HH点mm分ss秒"];
    // 转成NSDate对象
    NSDate *fromdate=[format dateFromString:dateStr];
    NSLog(@"fromdate:%@", fromdate);
    // 获取系统所在时区
    NSTimeZone *zone = [NSTimeZone systemTimeZone];
    // 与GMT时间的时差
    NSInteger fromInterval = [zone secondsFromGMTForDate: fromdate];
    NSDate *fromDate = [fromdate  dateByAddingTimeInterval: fromInterval];
    NSLog(@"fromDate:%@",fromDate);
#pragma mark - 计算当前时间和一个固定时间的差值,如果差值在60秒内,输出"刚刚",如果在60秒外3600秒内,输出"xx分钟前",如果3600秒外, 3600*24秒内,输出"xx小时前"
    NSString *anotherDateString = @"2016-07-11 19:01:17";
    // 获取当前时间(GMT)
    NSDate *date = [NSDate date];
    NSDateFormatter *format2 = [[NSDateFormatter alloc] init];
    [format2 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *anotherDate = [format2 dateFromString:anotherDateString];
    double interval = fabs([date timeIntervalSinceDate:anotherDate]);
    if( interval < 60) {
        NSLog(@"刚刚");
    } else if(interval < 60*60) {
        NSLog(@"%.f分钟前", interval / 60.f);
    } else if(interval < 60*60*24) {
        NSLog(@"%.1f小时前", interval / 3600.f);
    }
#pragma mark - 将1468232420转成日期类型
    NSDate *date3 = [NSDate dateWithTimeIntervalSince1970:1468232420];
    NSLog(@"date3:%@", date3);
    NSInteger timeDifference = [zone secondsFromGMTForDate:date3];
    NSDate *systemZoneDate = [date3 dateByAddingTimeInterval:timeDifference];
    NSLog(@"systemZoneDate:%@",systemZoneDate);
#pragma mark - 研究NSDateComponents
#pragma mark - 预习内存管理, 整理今天的代码
    return 0;
}
